<?php
/**
*@package TIp.cls.php
*@copyright Copyright (c) 2012-2014 Tuniu.com
*@author huxiaomin 2012  上午11:06:04
*@version 1.0
*/

class TIp{
    
    /**
     * 返回ip是否合法  默认非法
     * @param string $ip
     * @param array $ip_list
     * @return boolean
     */
    static  function checkIp($ip,$ip_list){
         if (isset($ip_list[$ip])){
            return intval($ip_list[$ip]);
         }
        
         $ip_arr = explode('.', $ip); 
         
         foreach((array)$ip_list as $key=>$value){
            $key_arr = explode('.',$key);
            $range = explode('/', $key_arr[3]);
            if (!$range[1]){
                continue;
            }
            if ($ip_arr[0] == $key_arr[0] 
                && $ip_arr[1] == $key_arr[1] 
                && $ip_arr[2] == $key_arr[2] 
                && $ip_arr[3] >= $range[0]
                && $ip_arr[3] <= $range[1]
                ){
                return $value;
            }
         }
         return 0;      
    }
    
    /**
     * 检查key合法性  
     * @param string $ip
     * @param string $key
     * @return boolean
     */
    static function checKey($ip, $key){
        $table = new TTable('duser');
        $key = mysql_real_escape_string($key);
        $key_info = $table->select('id,name,ip', "app_key='{$key}'");
        //print_r(DAO::$sql_log);
        if (empty($key_info)){
            return false;
        }
        $ip_list = explode(';', $key_info[0]['ip']);
        $ip_list = array_fill_keys($ip_list, 1);
        return self::checkIp($ip, $ip_list);
    }

}